并非教程,只是个人方便以后自己抄配置写的
买了台新的香港大带宽机器,日常流量显然是用不完的,还有IPv4+IPv6双栈,心血来潮跑去折腾DN42……
首先先去git.dn42.dev找个没人用的ASN,填写MNTER等信息提交到自己的fork然后提PR。
其实不一定非要用explorer.burble.com找ASN和IPv4、IPv6块,直接把仓库clone下来之后在仓库里找也行(
IPv6可以直接随机生成
python3 -c "import random; print('fd' + ''.join(random.choice('0123456789abcdef') for _ in range(2)) + ':' + ':'.join(''.join(random.choice('0123456789abcdef') for _ in range(4)) for _ in range(3)) + '::/48')"
ssh-keygen -t ed25519 -f ~/.ssh/id_dn42 -C "XXXXX-DN42"
签好名提交合并完进仓库了就OK了,这是后续和别人peer对方ROA等认证的基础
然后安装WireGuard和BIRD,生成WireGuard密钥对
# 可选:添加bird官方源
sudo add-apt-repository ppa:cz.nic-labs/bird
sudo apt update
更新:PPA源最新只有2.17,使用官方源
# 1. 移除旧的 PPA
sudo add-apt-repository --remove ppa:cz.nic-labs/bird
# 2. 添加 CZ.NIC 官方源(以 Ubuntu 24.04 为例,其他版本把 noble 换成对应代号)
sudo apt update && sudo apt -y install apt-transport-https ca-certificates wget lsb-release
sudo wget -O /usr/share/keyrings/cznic-labs-pkg.gpg https://pkg.labs.nic.cz/gpg
echo "deb [signed-by=/usr/share/keyrings/cznic-labs-pkg.gpg] https://pkg.labs.nic.cz/bird2 $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/cznic-labs-bird2.list
# 3. 更新并安装
sudo apt update && sudo apt install bird2
sudo apt install wireguard bird2
wg genkey | tee ~/wg-private.key | wg pubkey > ~/wg-public.key
应用/刷新配置
sudo wg-quick down dn42
sudo wg-quick up dn42
sudo wg show
sudo bird -p -c /etc/bird/bird.conf
sudo birdc configure
sudo birdc show protocols
sudo birdc show route
Alpine 部署 DN42 节点
# 安装软件包
apk add wireguard-tools-wg-quick iptables
apk add bird2 bird2-openrc
# 将 BIRD 加入默认运行级别并启动
rc-update add bird
rc-service bird start
# 生成密钥
wg genkey | tee server.privatekey | wg pubkey > server.publickey
# 配置开机自启
apk add wireguard-tools-openrc
ln -s /etc/init.d/wg-quick /etc/init.d/wg-quick.wg0
rc-update add wg-quick.wg0
rc-service wg-quick.wg0 start
# 启用 IP 转发
# 编辑 /etc/sysctl.d/ 下的配置文件或 /etc/sysctl.conf,添加:
net.ipv4.ip_forward = 1
# rp_filter我都写接口postup里了
# 生效配置并加入开机自启
sysctl -p /etc/sysctl.d/dn42.conf
rc-update add sysctl
反向解析DNS服务器(Ubuntu24)
# 导入 GPG 密钥、添加 APT 源
curl -fsSL https://repo.powerdns.com/FD380FBB-pub.asc | sudo gpg --dearmor -o /usr/share/keyrings/powerdns.gpg
echo "deb [signed-by=/usr/share/keyrings/powerdns.gpg] http://repo.powerdns.com/ubuntu noble-auth-49 main" | sudo tee /etc/apt/sources.list.d/powerdns-auth.list
# 配置 APT Pin 优先级
sudo tee /etc/apt/preferences.d/pdns << 'EOF'
Package: pdns-*
Pin: origin repo.powerdns.com
Pin-Priority: 600
EOF
# 安装
sudo apt update
sudo apt install pdns-server pdns-backend-sqlite3 sqlite3
# 禁用系统自带DNS以释放53端口
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
sudo rm /etc/resolv.conf
echo "nameserver 1.1.1.1" | sudo tee /etc/resolv.conf
# 初始化 SQLite 数据库
sudo mkdir -p /var/lib/powerdns
sudo sqlite3 /var/lib/powerdns/pdns.sqlite3 < /usr/share/doc/pdns-backend-sqlite3/schema.sqlite3.sql
sudo chown -R pdns:pdns /var/lib/powerdns
格式为[IP最后一位]/[前缀长度].[IP倒序].in-addr.arpa,例如172.22.76.184/29区名为184/29.76.22.172.in-addr.arpa
# 创建DN42反向解析区
sudo pdnsutil create-zone "184/29.76.22.172.in-addr.arpa"
sudo pdnsutil show-zone "184/29.76.22.172.in-addr.arpa"
sudo pdnsutil replace-rrset
# 添加PTR记录
sudo pdnsutil add-record "184/29.76.22.172.in-addr.arpa" "185" PTR "host.yourdomain.dn42."
# 验证
dig @127.0.0.1 -x 172.22.76.185
暂无评论
还没有评论,来说点什么吧